home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl5 / Debian / DocBase / Common.pm next >
Encoding:
Perl POD Document  |  2008-09-07  |  5.1 KB  |  162 lines

  1. # vim:cindent:ts=2:sw=2:et:fdm=marker:cms=\ #\ %s
  2. #
  3. # $Id: Common.pm 133 2008-04-20 14:32:30Z robert $
  4.  
  5.  
  6. package Debian::DocBase::Common;
  7.  
  8. use Exporter();
  9. use strict;
  10. use warnings;
  11.  
  12. use vars    qw(@ISA @EXPORT);
  13. @ISA    = qw(Exporter);
  14. @EXPORT = qw($DATA_DIR $CONTROL_DIR $LOCAL_CONTROL_DIR $VAR_CTRL_DIR $OMF_DIR
  15.              $DOCBASE_SECTIONS_MAP $DOCBASE_VALID_SECTIONS_LIST $CTIME_FIELDNO
  16.              $DB_FILES $DB_STATUS
  17.              @SUPPORTED_FORMATS @NEED_INDEX_FORMATS
  18.              $FLD_DOCUMENT $FLD_VERSION $FLD_SECTION $FLD_TITLE $FLD_AUTHOR $FLD_ABSTRACT 
  19.              $FLD_FORMAT $FLD_INDEX $FLD_FILES 
  20.              %FIELDS_DEF
  21.                 $FLDDEF_TYPE
  22.                   $FLDTYPE_MAIN $FLDTYPE_FORMAT
  23.                 $FLDDEF_REQUIRED
  24.                 $FLDDEF_MULTILINE
  25.              $opt_verbose $opt_debug $exitval $opt_rootdir $opt_update_menus
  26.              GetFldKeys
  27.             );
  28.  
  29. our $DATA_DIR                     = "/var/lib/doc-base/info";
  30. our $DB_FILES                     = "$DATA_DIR/files.db";
  31. our $DB_STATUS                    = "$DATA_DIR/status.db";
  32. our $CONTROL_DIR                  = "/usr/share/doc-base";
  33. our $DOCBASE_SECTIONS_MAP         = "$CONTROL_DIR/data/doc-base.map";
  34. our $DOCBASE_VALID_SECTIONS_LIST  = "$CONTROL_DIR/data/section.list";
  35. our $LOCAL_CONTROL_DIR            = "/etc/doc-base/documents";
  36. our $VAR_CTRL_DIR                 = "/var/lib/doc-base/documents";
  37. our $CTIME_FIELDNO                = 10;
  38. our $OMF_DIR                      = "/var/lib/doc-base/omf";
  39.  
  40.  
  41. # ---configuration-part---
  42.  
  43. # All formats handled by the doc-base
  44. our @SUPPORTED_FORMATS =  (
  45.                             'html',
  46.                             'text',
  47.                             'pdf',
  48.                             'postscript',
  49.                             'info',
  50.                             'dvi',
  51.                             'debiandoc-sgml'
  52.                       );
  53.  
  54. # Formats which need the Index: field
  55. our @NEED_INDEX_FORMATS = (
  56.                             'html',
  57.                             'info'
  58.                          );
  59.  
  60.  
  61. our $FLD_DOCUMENT   = 'document';
  62. our $FLD_VERSION    = 'version';
  63. our $FLD_SECTION    = 'section';
  64. our $FLD_TITLE      = 'title';
  65. our $FLD_AUTHOR     = 'author';
  66. our $FLD_ABSTRACT   = 'abstract';
  67. our $FLD_FORMAT     = 'format';
  68. our $FLD_INDEX      = 'index';
  69. our $FLD_FILES      = 'files';
  70.  
  71. # doc-base control file fields definitions
  72. our $FLDDEF_TYPE      = 'type';
  73.   our $FLDTYPE_MAIN   = 1;
  74.   our $FLDTYPE_FORMAT = 2;
  75. our $FLDDEF_REQUIRED  = 'required';
  76. our $FLDDEF_MULTILINE = 'multiline';
  77. our $FLDDEF_POSITION  = 'position';
  78.  
  79. # Fields in doc-base file:
  80. our %FIELDS_DEF  = (
  81.  # Main fields:
  82.   $FLD_DOCUMENT => {
  83.                   $FLDDEF_POSITION  => 0,
  84.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  85.                   $FLDDEF_REQUIRED  => 1,
  86.                   $FLDDEF_MULTILINE => 0
  87.                 },
  88.   $FLD_VERSION  => {
  89.                   $FLDDEF_POSITION  => 1,
  90.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  91.                   $FLDDEF_REQUIRED  => 0,
  92.                   $FLDDEF_MULTILINE => 0
  93.                 },
  94.   $FLD_SECTION  => {
  95.                   $FLDDEF_POSITION  => 2,
  96.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  97.                   $FLDDEF_REQUIRED  => 0,
  98.                   $FLDDEF_MULTILINE => 0
  99.                 },
  100.   $FLD_TITLE    => {
  101.                   $FLDDEF_POSITION  => 3,
  102.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  103.                   $FLDDEF_REQUIRED  => 1,
  104.                   $FLDDEF_MULTILINE => 1
  105.                 },
  106.   $FLD_AUTHOR   => {
  107.                   $FLDDEF_POSITION  => 4,
  108.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  109.                   $FLDDEF_REQUIRED  => 0,
  110.                   $FLDDEF_MULTILINE => 1
  111.                 },
  112.   $FLD_ABSTRACT => {
  113.                   $FLDDEF_POSITION  => 5,
  114.                   $FLDDEF_TYPE      => $FLDTYPE_MAIN,
  115.                   $FLDDEF_REQUIRED  => 0,
  116.                   $FLDDEF_MULTILINE => 1
  117.                 },
  118.  # Format fields:  
  119.   $FLD_FORMAT   => {
  120.                   $FLDDEF_POSITION  => 6,
  121.                   $FLDDEF_TYPE      => $FLDTYPE_FORMAT,
  122.                   $FLDDEF_REQUIRED  => 1,
  123.                   $FLDDEF_MULTILINE => 0
  124.                 },
  125.   $FLD_INDEX    => {
  126.                   $FLDDEF_POSITION  => 7,
  127.                   $FLDDEF_TYPE      => $FLDTYPE_FORMAT,
  128.                   $FLDDEF_REQUIRED  => 0,
  129.                   $FLDDEF_MULTILINE => 0
  130.                 },
  131.   $FLD_FILES    => {
  132.                   $FLDDEF_POSITION  => 8,
  133.                   $FLDDEF_TYPE      => $FLDTYPE_FORMAT,
  134.                   $FLDDEF_REQUIRED  => 0, # 
  135.                   $FLDDEF_MULTILINE => 1
  136.                 }
  137. );
  138.  
  139. sub GetFldKeys($) {
  140.   my $fldtype = shift;
  141.  
  142.   my @fldkeys = sort { $FIELDS_DEF{$a}->{$FLDDEF_POSITION} <=> $FIELDS_DEF{$b}->{$FLDDEF_POSITION} }
  143.                   grep  { $FIELDS_DEF{$_}->{$FLDDEF_TYPE} eq $fldtype }                   
  144.                     keys %FIELDS_DEF;
  145.   return @fldkeys;                  
  146.  
  147. }
  148.  
  149. # ---end-of-configuration-part---
  150.  
  151. # ---global-variables---
  152.  
  153.  
  154. our $opt_verbose      = 0;
  155. our $opt_debug        = 0;
  156. our $opt_update_menus = 1;
  157. our $opt_rootdir      = "";
  158. our $exitval          = 0;
  159.  
  160.  
  161. 1;
  162.